﻿#region 命名空间

using System;
using System.Collections.Generic;
using System.ServiceModel;
using Sharp.DataTransferObject;
using Sharp.Infrastructure;
using Sharp.Infrastructure.Interfaces;

#endregion

namespace Sharp.ServiceContracts
{
    public partial interface IUserService
    {
        /// <summary>
        ///     获取所有角色。
        /// </summary>
        /// <returns>所有角色。</returns>
        [OperationContract]
        [FaultContract(typeof (FaultData))]
        IList<RoleDTO> GetRoles();

        /// <summary>
        ///     根据指定的ID值，获取角色。
        /// </summary>
        /// <param name="id">指定的角色ID值。</param>
        /// <returns>角色。</returns>
        [OperationContract]
        [FaultContract(typeof (FaultData))]
        RoleDTO GetRoleByKey(Guid id);

        /// <summary>
        ///     创建角色。
        /// </summary>
        /// <param name="roleDTO">需要创建的角色。</param>
        /// <returns>已创建的角色。</returns>
        [OperationContract]
        [FaultContract(typeof (FaultData))]
        Result CreateRoles(RoleDTO roleDTO);

        /// <summary>
        ///     更新角色。
        /// </summary>
        /// <param name="roledtos">需要更新的角色。</param>
        /// <returns>已更新的角色。</returns>
        [OperationContract]
        [FaultContract(typeof (FaultData))]
        IList<RoleDTO> UpdateRoles(IList<RoleDTO> roledtos);

        /// <summary>
        ///     删除角色。
        /// </summary>
        /// <param name="roleIDs">需要删除的角色ID值列表。</param>
        [OperationContract]
        [FaultContract(typeof (FaultData))]
        void DeleteRoles(IList<Guid> roleIDs);
    }
}